package com.spyz.hbase_api;

import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;

import java.io.IOException;

public class P2_HBaseDDL_2 {
    public static Connection connection=P1_HbaseConnection_2.connection;

    /**
     * 创建命名空间
     * @param namespace 命名空间名称
     */
    public static void createNamespace(String namespace) throws IOException {

        Admin admin = connection.getAdmin();

        NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespace);

        // 2.2 给命名空间添加需求
        builder.addConfiguration("user","spyz");

        // 2.3 使用builder构造出对应的添加完整参数的对象 完成创建
        //      创建命名空间的出现的问题    都属于本方法自身的问题 不应该抛出
        try {
            admin.createNamespace(builder.build());
        } catch (IOException e) {
            System.out.println("命名空间已经存在");
            throw new RuntimeException(e);
        }

        admin.close();

    }

    public static void main(String[] args) throws IOException {

        // 测试创建命名空间
        //  应该先保证连接没有问题 再来调用
        createNamespace("spyz");

        // 其他测试代码
        System.out.println("ok");

        // 关闭连接
        P1_HbaseConnection_2.closeConnection();
    }

}
